基于VC++.NET 的串行通信的机器人控制系统设计
2014/2/18 10:24:53
1.前言(Introdution)
随着当今科技的不断发展,机器人应用领域的不断扩展,人们对机器人的控制越来越想方便、快捷。基于PC 的机器人控制系统极大的促进了机器人的遥操作技术。基于VC++.NET的机器人控制平台的设计,提高了系统的人机交互性和可扩展性。
本文将 PC 机与单片机结合,综合应用了两者的优势,互补了彼此的缺陷,设计了一套机器人控制系统。上位机(PC 机)主要采用VC++.NET 设计了可视化的机器人控制平台,简洁明了,控制快捷;下位机(单片机控制系统)主要采用PIC 单片机和PSC(Parallax ServoController)电机控制器,采用模块化递阶控制技术融合传感器技术,运用汇编语言,通过键盘控制,完成了机器人的各种行走功能,同时还通过液晶显示芯片1602 来显示机器人当前的工作状态;本研究采用的试验移动机器人是德普施科技有限公司的DRROB 系列高级机器人产品——六足机器人。
2.系统硬件设计(The design of system hardware)
2.1 系统硬件的总体设计:
基于前言部分所描述机器人控制系统功能,初步分析该系统由以下几个模块组成:单片机最小系统模块(PIC 单片机为核心,扩展了一片EEPROM 芯片24LC16B),串行通信模块,直流伺服电机驱动模块,键盘控制模块,液晶显示模块及传感器检测模块等。列出部分主要模块电路图。其控制系统总体框图如图1 所示。
图1 控制系统总体结构
2.2 通信电路模块:
采用 MAX232 实现电平转换,其连接采用简单的零调制三线经济型。其电路如图2 所示。
图2 通信电路
2.3 电机驱动电路模块:
采用 PSC 电机控制器作为电机驱动模块的硬件基础,此控制器采用数据分配器芯片一个、信号接收端口一个、复位按钮一个、单刀双掷开关一个,+5V 伺服电源入口一个。PSC电机控制器是一个1/16 线的数据分配器,通过串口通信将接收来的控制信息分成16 路,经译码后可发送给16 个电机驱动器芯片,在这里我们使用其中12 个端口。六足机器人的基本动作是由12 个直流伺服电机协同动作完成,伺服电机采用减速装置,旋转电位计和H 桥实现精确的位置半闭环控制。Serial(信息接收端口)与PIC 微控制器的P15 端口相连,接受控制信号。其电路如图3 所示。
图 3 电机驱动模块
2.4 机器人红外避障模块:
采用了一个简单但应用普遍的电路。在该电路中采用了常用的红外发射管D1 和接收管Q1,通过改变电阻R1 可以调节发射管的功率,通过测量D1 的电压可以计算出机器人距离目标或者障碍物的距离。其电路图略。
2.5 液晶显示模块:
采用 1602 液晶显示模块,该模块内部的字符发生存储器(CGROM)已经存储了160 个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。此模块的作用是可以显示当前的状态,实现机器人的人机交互显示功能。其电路略。
3.系统软件设计(The design of system software)
该系统的软件设计分为两个部分:上位机软件和下位机软件。上位机采用高级语言VC++.NET 来实现,而下位机采用汇编语言来实现。
3.1 上位机软件实现
在 WINDOWS 环境下,用户不能直接对PC 的串行端口进行操作。Visual C++.NET 中,通过使用微软公司提供的Microsoft Comm Control 控件(简称MSComm),可以方便地实现PC 与外部设备之间的串行通信,编程工作量相对较少。串行通信控件MSComm 有二种处理通信的工作方式:事件驱动方式和查询工作方式。事件驱动方式是指:当串行端口接收或发送完指定数量数据以及发生通信错误等情况时,MSComm 控件触发OnComm 事件,作出相应处理。查询工作方式是指:通过查询控件的某些属性值(如InBufferCount 属性)来作出进一步的处理。本设计实现采用事件驱动方式来发送接收数据。上位机程序主要包括初始化程序,控制代码发送程序,机器人各种动作控制程序等。(代码略)
3.2 下位机软件实现
下位机程序主要由:主程序,机器人各动作的子程序,数据(控制字)传送子程序,来自上位机的信号接受程序,延时程序等。其中最重要的就是机器人的各动作子程序(六足机器人涉及到12 个电机):使用PIC 单片机的扩展芯片EEPROM 数据存储区存储机器人每个动作对应的各电机的输入脉冲宽,建立一个数据指针ptrEEPROM,采用查表方式读取,然后通过串行通信写入PSC 电机控制器。控制系统主程序流程图如图4 所示。
图 4 系统主程序流程图
4.系统试验机器人样机及最终硬件实物图(The robot’s sketch map for test and the final systemhardware photo)
该系统采用的机器人结构:以一曲柄摇杆机构和连杆机构作为腿部和六足,以12 个直流伺服电机作为驱动元件。利用德普施科技有限公司的六足机器人包搭接出的机器人。机器人机构示意图及设计最终的下位机硬件图如图5 所示。
a.六足机器人机构示意图 b.系统下位机的硬件图
图5 机器人最初和最终状态图
系统上位机控制界面如图6 所示(通过键盘发送相应控制状态或点击机器人动作演示中相应的动作按钮,使机器人动作,同时在接受数据窗口可以显示出当前机器人的运动状态)。
图 6 系统上位机控制界面
5.结论(Conclusion)
本文完成所有的软、硬件设计并对机器人样机进行调试后,能够使机器人很好地完成各种预设的动作,运动灵活、可靠。
由论文工作可得:控制系统的电机驱动电路采用一片数据分配器芯片,提高了控制的精确性;运用PIC 单片机技术,并综合红外传感技术,增强了机器人研究领域的环境感知和人机交互功能;采用新型的VC++.NET 平台编写程序,突出了机器人研究领域的通信技术功能,相对VC++.6.0 更加提高了控制系统的扩展性,同时也更好地提高了工业控制的自动化水平。有很好的推广价值。
本文作者创新点:控制系统的电机驱动电路采用一片数据分配器芯片,提高了控制的精确性;采用新型的VC++.NET 平台编写程序,相对VC++.6.0 更加提高了控制系统的扩展性,同时也更好地提高了工业控制的自动化水平。有很好的推广价值。
随着当今科技的不断发展,机器人应用领域的不断扩展,人们对机器人的控制越来越想方便、快捷。基于PC 的机器人控制系统极大的促进了机器人的遥操作技术。基于VC++.NET的机器人控制平台的设计,提高了系统的人机交互性和可扩展性。
本文将 PC 机与单片机结合,综合应用了两者的优势,互补了彼此的缺陷,设计了一套机器人控制系统。上位机(PC 机)主要采用VC++.NET 设计了可视化的机器人控制平台,简洁明了,控制快捷;下位机(单片机控制系统)主要采用PIC 单片机和PSC(Parallax ServoController)电机控制器,采用模块化递阶控制技术融合传感器技术,运用汇编语言,通过键盘控制,完成了机器人的各种行走功能,同时还通过液晶显示芯片1602 来显示机器人当前的工作状态;本研究采用的试验移动机器人是德普施科技有限公司的DRROB 系列高级机器人产品——六足机器人。
2.系统硬件设计(The design of system hardware)
2.1 系统硬件的总体设计:
基于前言部分所描述机器人控制系统功能,初步分析该系统由以下几个模块组成:单片机最小系统模块(PIC 单片机为核心,扩展了一片EEPROM 芯片24LC16B),串行通信模块,直流伺服电机驱动模块,键盘控制模块,液晶显示模块及传感器检测模块等。列出部分主要模块电路图。其控制系统总体框图如图1 所示。
图1 控制系统总体结构
2.2 通信电路模块:
采用 MAX232 实现电平转换,其连接采用简单的零调制三线经济型。其电路如图2 所示。
图2 通信电路
2.3 电机驱动电路模块:
采用 PSC 电机控制器作为电机驱动模块的硬件基础,此控制器采用数据分配器芯片一个、信号接收端口一个、复位按钮一个、单刀双掷开关一个,+5V 伺服电源入口一个。PSC电机控制器是一个1/16 线的数据分配器,通过串口通信将接收来的控制信息分成16 路,经译码后可发送给16 个电机驱动器芯片,在这里我们使用其中12 个端口。六足机器人的基本动作是由12 个直流伺服电机协同动作完成,伺服电机采用减速装置,旋转电位计和H 桥实现精确的位置半闭环控制。Serial(信息接收端口)与PIC 微控制器的P15 端口相连,接受控制信号。其电路如图3 所示。
图 3 电机驱动模块
2.4 机器人红外避障模块:
采用了一个简单但应用普遍的电路。在该电路中采用了常用的红外发射管D1 和接收管Q1,通过改变电阻R1 可以调节发射管的功率,通过测量D1 的电压可以计算出机器人距离目标或者障碍物的距离。其电路图略。
2.5 液晶显示模块:
采用 1602 液晶显示模块,该模块内部的字符发生存储器(CGROM)已经存储了160 个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。此模块的作用是可以显示当前的状态,实现机器人的人机交互显示功能。其电路略。
3.系统软件设计(The design of system software)
该系统的软件设计分为两个部分:上位机软件和下位机软件。上位机采用高级语言VC++.NET 来实现,而下位机采用汇编语言来实现。
3.1 上位机软件实现
在 WINDOWS 环境下,用户不能直接对PC 的串行端口进行操作。Visual C++.NET 中,通过使用微软公司提供的Microsoft Comm Control 控件(简称MSComm),可以方便地实现PC 与外部设备之间的串行通信,编程工作量相对较少。串行通信控件MSComm 有二种处理通信的工作方式:事件驱动方式和查询工作方式。事件驱动方式是指:当串行端口接收或发送完指定数量数据以及发生通信错误等情况时,MSComm 控件触发OnComm 事件,作出相应处理。查询工作方式是指:通过查询控件的某些属性值(如InBufferCount 属性)来作出进一步的处理。本设计实现采用事件驱动方式来发送接收数据。上位机程序主要包括初始化程序,控制代码发送程序,机器人各种动作控制程序等。(代码略)
3.2 下位机软件实现
下位机程序主要由:主程序,机器人各动作的子程序,数据(控制字)传送子程序,来自上位机的信号接受程序,延时程序等。其中最重要的就是机器人的各动作子程序(六足机器人涉及到12 个电机):使用PIC 单片机的扩展芯片EEPROM 数据存储区存储机器人每个动作对应的各电机的输入脉冲宽,建立一个数据指针ptrEEPROM,采用查表方式读取,然后通过串行通信写入PSC 电机控制器。控制系统主程序流程图如图4 所示。
图 4 系统主程序流程图
4.系统试验机器人样机及最终硬件实物图(The robot’s sketch map for test and the final systemhardware photo)
该系统采用的机器人结构:以一曲柄摇杆机构和连杆机构作为腿部和六足,以12 个直流伺服电机作为驱动元件。利用德普施科技有限公司的六足机器人包搭接出的机器人。机器人机构示意图及设计最终的下位机硬件图如图5 所示。
a.六足机器人机构示意图 b.系统下位机的硬件图
图5 机器人最初和最终状态图
系统上位机控制界面如图6 所示(通过键盘发送相应控制状态或点击机器人动作演示中相应的动作按钮,使机器人动作,同时在接受数据窗口可以显示出当前机器人的运动状态)。
图 6 系统上位机控制界面
5.结论(Conclusion)
本文完成所有的软、硬件设计并对机器人样机进行调试后,能够使机器人很好地完成各种预设的动作,运动灵活、可靠。
由论文工作可得:控制系统的电机驱动电路采用一片数据分配器芯片,提高了控制的精确性;运用PIC 单片机技术,并综合红外传感技术,增强了机器人研究领域的环境感知和人机交互功能;采用新型的VC++.NET 平台编写程序,突出了机器人研究领域的通信技术功能,相对VC++.6.0 更加提高了控制系统的扩展性,同时也更好地提高了工业控制的自动化水平。有很好的推广价值。
本文作者创新点:控制系统的电机驱动电路采用一片数据分配器芯片,提高了控制的精确性;采用新型的VC++.NET 平台编写程序,相对VC++.6.0 更加提高了控制系统的扩展性,同时也更好地提高了工业控制的自动化水平。有很好的推广价值。
提交
查看更多评论
其他资讯
工业机器人控制系统的开放体系结构
工业机器人离线编程及无碰撞路径规划系统的开发研究
工业机器人手臂结构的有限元分析与研究
工业机器人通用控制器研究开发
工业机器人网络控制与编程